# 导入相关的模块
# matplotlib模块用于图像的显示
# torchvision库用于进行数据增强
# PIL库用于图像的读取
import matplotlib.pyplot as plt
import torchvision.transforms as T
from PIL import Image

# 指定一下四张图片的路径位置
path = ["../pic/sign1.jpg", "../pic/sign2.jpg", "../pic/sign3.jpeg", "../pic/sign4.jpeg"]


# 循环读取每一张图片，得到index为索引号，p为图片的文件路径信息
for index, p in enumerate(path):
    plt.subplot(2, 2, 1+index) # 绘制第2行第2列的第index+1个图片
    img_array = Image.open(p) # 得到第index+1个图片的数组
    # 利用torchvision.transforms.Grayscale()方法将图像转为灰度图
    new_img_array = T.Grayscale()(img_array)
    # 创建一个Compose()类，主要作用是串联多个图片变换的操作。
    # ToTensor()函数将(H,W,C)的ndarray或img转为(C,H,W)的tensor，并将范围映射到[0,1]
    trans = T.Compose([T.ToTensor()])
    # Compose()类将列表里的变换操作进行遍历
    a = trans(new_img_array)
    print(a.shape)
    print(a)
    plt.imshow(new_img_array, cmap="gray") # 画出图像
plt.show() # 显示整体四张图片
